// -----------------------------
// Author: 		Dhaenens Gert 
// Creation: 	10/22/2014 12:12:45 PM				
// -----------------------------

#ifndef _AudioManager_h
#define _AudioManager_h

#include "Common.h"

class Application;
class Sound;
class SoundChannel;

class AudioManager
{
public:
	friend class Sound;
	friend class SoundChannel;

	AudioManager();
	~AudioManager();

	Bool	Init(Application* lpApp);
	void	Update(Application* lpApp);

	Sound*	CreateSoundFromFile(Application* lpApp, const TString& Identifier);
	Sound*	CreateSoundFromData(Application* lpApp, Float* lpSamples, UInt32 sampleCount, UInt32 channelCount);
	Sound*	CreateSoundFromData8Bit(Application* lpApp, Byte* lpSamples, UInt32 sampleCount, UInt32 channelCount);

private:

	FMOD::System*	m_lpSystem;

	AudioManager(const AudioManager& refAudioManager);
	AudioManager& operator=(const AudioManager& refAudioManager);
};

#endif